package variableparameters;

import java.util.Arrays;

/**
 * @author DCSGO
 * @version 1.0
 * 可变参数注意事项和使用细节
 * 1)可变参数的实参可以为0个1个或任意多个
 * 2)可变参数的实参可以为数组
 * 3)可变参数的本质就是数组
 * 4)可变参数可以和普通类型的参数一起放在形参列表，但必须保证可变参数在最后
 * 5)一个形参列表中最多只能出现一个可变参数
 */
public class VarParameterDetail {
    public static void m1(int... nums) {
        System.out.println(Arrays.toString(nums));
    }

    //4)可变参数可以和普通类型的参数一起放在形参列表，但必须保证可变参数在最后
    public static void m2(String s1, int... nums) {
    }
    //public static void m3(int... nums,String s1){} //无法通过编译

    //5)一个形参列表中最多只能出现一个可变参数
    //public static  void m4(String... strings, int... nums){} //无法通过编译

    public static void main(String[] args) {
        m1(1, 2, 3, 4, 5);//[1, 2, 3, 4, 5]

        int[] nums = {1, 2, 3, 4, 5};
        //2)可变参数的实参可以为数组
        m1(nums);//[1, 2, 3, 4, 5]
    }
}
